<template>
  <view class="simple">
    <sv-exam-plus
      type="practice"
      :data="examData"
      :showCard="false"
      @changePaper="changePaper"
      @quit="onQuit"
    ></sv-exam-plus>
  </view>
</template>

<script>
export default {
  data() {
    return {
      examData: []
    }
  },
  onLoad() {
    // 通信通道传值 - 只监听一次
    const eventChannel = this.getOpenerEventChannel()
    eventChannel.once('e-transmit-exams', (res) => {
      this.examData = res.data // 从错题本或试题收藏夹页面传过来试题列表
      this.$nextTick(() => {
        // 默认试题索引需要在页面渲染后赋予
        uni.$emit('sv-exam-start', res.index) // 从错题本或试题收藏夹页面传过来试题索引
      })
    })

    // 开启监听者
    this.examWatcher()
  },
  onUnload() {
    // 统一做exam所有事件监听移除操作 (尽管该页面可能未开启相关监听)
    uni.$off('e-exam-paper-item-submit')
    uni.$off('e-exam-paper-complete')
    uni.$off('e-exam-paper-item-fav')
    uni.$off('e-exam-paper-item-feedback')
  },
  methods: {
    /**
     * 切换题目
     * @param {Object} e 当前题目
     */
    changePaper(e) {
      // console.log('==== 切换题目 :', e)
    },
    /**
     * 退出考试
     * @param {Object} e 做题记录，可缓存或上传云端，用作下一次打开后继续进度
     */
    onQuit(e) {
      // console.log('==== 退出考试 :', e)
    },
    examWatcher() {
      /**
       * 监听题目提交
       * @param e 题目记录: 可根据返回的题目记录，自定义选择存入做题记录或错题本
       */
      uni.$on('e-exam-paper-item-submit', async (e) => {
        console.log('==== 监听题目提交 e-exam-paper-item-submit :', e)
      })
      /**
       * 监听纠错反馈
       * @param e 纠错反馈的题目
       */
      uni.$on('e-exam-paper-item-feedback', (e) => {
        console.log('==== 监听纠错反馈 e-exam-paper-item-feedback :', e)
      })
    }
  }
}
</script>

<style lang="scss">
.simple {
  width: 100%;
  height: calc(100vh - var(--window-top));
}
</style>
